# -*- coding: utf-8 -*-
"""
Created on Fri Dec 17 08:24:32 2021

@author: lenovo
"""
import requests            # 用于获取网页内容的模块
from bs4 import BeautifulSoup    # 用于解析网页源代码的模块

# 伪造浏览器头部
header={  
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.0.8793 Safari/537.36',
}
#获取网易云音乐热歌榜的链接
link = "https://music.163.com/#/discover/toplist?id=3778678" 
# 通过 requests 模块的 get 方法获取网页数据      
r = requests.get(link, headers=header) 
 # 获取网页内容
html = r.content
 # 通过 BeautifulSoup 模块解析网页 
soup = BeautifulSoup(html, "html.parser") 
 #通过分析网页源代码发现排行榜中的歌曲信息全部放在类名称为 f-hide 的 ul 中，找到里面的全部 a 标签
songs = soup.find("ul", class_="f-hide").select("a", limit=10) 
i = 1 # 设置一个自增参数，表示歌曲的数目

for s in songs:    # 遍历输出数组 songs 中的内容
    song_id = s['href'][9:]   # 爬取歌曲链接中的 ID 部分
    song_name = s.text   # 获取 a 标签的文本内容
    song_down_link = "http://music.163.com/song/media/outer/url?id=" + song_id + ".mp3" 
    print("第 " + str(i) + " 首歌曲：" + song_down_link)
    
    response = requests.get(song_down_link, headers=header).content
    f = open(song_name + ".mp3", 'wb') # 以二进制的形式写入文件中
    f.write(response)
    f.close()
    
    i = i + 1


jpg_link='http://p1.music.126.net/aG5zqxkBRfLiV7A8W0iwgA==/109951166702962263.jpg'


pic=requests.get(jpg_link,headers=header)
jpg_data='下载的图片' + '.jpg'

fp=open(jpg_data,'wb+')
fp.write(pic.content)
fp.close()